class Solution {
public:
    int longestAlternatingSubarray(vector<int>& a, int k) {
        //o(n*n)
        // int n=a.size();
        // int ans=0;
        // if(n==1){
        //     if(a[0]%2==0&&a[0]<=k)return 1;
        //     else return 0;
        // }
        // for(int i=0;i<n;i++){
        //     if(a[i]%2==0&&a[i]<=k){
        //         int j=i+1;
        //         while(j<n&&a[j]%2!=a[j-1]%2&&a[j]<=k)j++;
        //         ans=max(ans,j-i);
        //     }
        // }

        //o(n)
        int i = 0;
        int n = a.size();
        int ans = 0;
        while (i < n) {
            if (a[i] > k || a[i] % 2 == 1) i++;
            else {
                int j = i;
                j++;
                while (j < n && a[j] <= k && a[j] % 2 != a[j - 1] % 2)j++;
                ans = max(ans, j - i);
                i = j;
            }
        }
        return ans;
    }
};